home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / SASETUP.MSI / F77656_user_prop.asp < prev    next >
Encoding:
Text File  |  2003-02-21  |  29.0 KB  |  843 lines

  1. <%@ Language=VBScript   %>
  2. <%    Option Explicit     %>
  3. <%
  4.     '------------------------------------------------------------------------- 
  5.     ' user_prop.asp : get's and set's the user properties.
  6.     '
  7.     ' Copyright (c) Microsoft Corporation.  All rights reserved. 
  8.     '
  9.     ' Date            Description
  10.     ' 15-jan-01        Creation date
  11.     '-------------------------------------------------------------------------
  12. %>
  13.     <!-- #include virtual="/admin/inc_framework.asp" -->
  14.     <!-- #include file="inc_usersngroups.asp" -->
  15. <%
  16.     '-------------------------------------------------------------------------
  17.     ' Global Constants and Variables
  18.     '-------------------------------------------------------------------------
  19.     Dim rc                        'framework variables
  20.     Dim page                    'framework variables
  21.     
  22.     Dim idTabGeneral            'framework variables
  23.     '-------------------------------------------------------------------------
  24.     ' Global Form Variables
  25.     '-------------------------------------------------------------------------
  26.     
  27.     Dim F_strOldUserName        'Stores the Username from the previous form
  28.     Dim F_strUserName            'Stores the Username from the client
  29.     Dim F_strFullName            'Stores FullName of the user
  30.     Dim F_strDescription        'Stores Description of the user
  31.     Dim F_strIschecked            'Used to store checked/unchecked
  32.     Dim F_blnIschecked            'Used to store values (1 or null )
  33.     Dim F_strHomeDirectory      'Stores Home directory of the user
  34.     Dim F_strOldHomeDirectory   'Stores previous Home directory of the user    
  35.     Dim F_strCheckboxClass      'Stores state of checkbox class.
  36.  
  37.     Dim F_strComputerName        'Stores the computer name
  38.     Dim F_objComputer            'var for getting connection for user info
  39.     Dim F_objUser                'var for getting user info
  40.     
  41.     ' Flag variable for setting disable property
  42.     CONST CONST_UF_ACCOUNTDISABLE    = &H0002    
  43.     Const CONST_NONUNIQUEUSERNAME_ERRNO        = &H800708B0
  44.     Const CONST_ADMINDISABLED_ERRNO            = &H8007055B
  45.     Const CONST_GROUP_EXISTS_ERRNO            = &H80070560
  46.     '------------------------------------------------------------------------
  47.     'Start of localization content
  48.     '------------------------------------------------------------------------
  49.     
  50.     Dim L_NOINPUTDATA_TEXT
  51.     Dim L_TABPROPSHEET_TEXT
  52.     Dim L_TABLEHEADING_TEXT    
  53.     Dim L_GENERAL_TEXT        
  54.     
  55.     Dim L_PAGETITLE_TEXT
  56.     Dim L_USERNAME_TEXT
  57.     Dim L_FULLNAME_TEXT
  58.     Dim L_DESCRIPTION_TEXT
  59.     Dim L_USERDISABLED_TEXT
  60.  
  61.     Dim L_ENTERNAME_ERRORMESSAGE
  62.     Dim L_INVALIDCHARACTER_ERRORMESSAGE
  63.     Dim L_UNIQUEUSERNAME_ERRORMESSAGE
  64.     Dim L_ADSI_ERRORMESSAGE
  65.     Dim L_GROUP_EXISTS_ERRORMESSAGE
  66.     Dim L_ADMINDISABLED_ERRORMESSAGE
  67.     
  68.     Dim L_HOMEDIRECTORY_TEXT
  69.     Dim L_HOMEDIRECTORY_ERRORMESSAGE    
  70.     Dim L_CREATEHOMEDIRECTORY_ERRORMESSAGE
  71.     Dim L_CREATEHOMEDIRECTORY_EXISTMESSAGE
  72.  
  73.     L_NOINPUTDATA_TEXT                    = objLocMgr.GetString("usermsg.dll","&H4030002C", varReplacementStrings)
  74.     L_TABPROPSHEET_TEXT                    = objLocMgr.GetString("usermsg.dll","&H4030002D", varReplacementStrings)
  75.     L_TABLEHEADING_TEXT                    = objLocMgr.GetString("usermsg.dll","&H4030002E", varReplacementStrings)
  76.     L_GENERAL_TEXT                        = objLocMgr.GetString("usermsg.dll","&H4030002F", varReplacementStrings)
  77.  
  78.     L_USERNAME_TEXT                     = objLocMgr.GetString("usermsg.dll","&H40300031", varReplacementStrings)
  79.     L_FULLNAME_TEXT                     = objLocMgr.GetString("usermsg.dll","&H40300032", varReplacementStrings)
  80.     L_DESCRIPTION_TEXT                    = objLocMgr.GetString("usermsg.dll","&H40300033", varReplacementStrings)
  81.     
  82.     L_ENTERNAME_ERRORMESSAGE            = objLocMgr.GetString("usermsg.dll","&HC0300035", varReplacementStrings)
  83.     L_UNIQUEUSERNAME_ERRORMESSAGE        = objLocMgr.GetString("usermsg.dll","&HC0300036", varReplacementStrings)
  84.     L_INVALIDCHARACTER_ERRORMESSAGE        = objLocMgr.GetString("usermsg.dll","&HC0300037", varReplacementStrings)
  85.     L_ADSI_ERRORMESSAGE                    = objLocMgr.GetString("usermsg.dll","&HC0300038", varReplacementStrings)
  86.     L_GROUP_EXISTS_ERRORMESSAGE            = objLocMgr.GetString("usermsg.dll","&HC0300039", varReplacementStrings)
  87.     L_ADMINDISABLED_ERRORMESSAGE        = objLocMgr.GetString("usermsg.dll","&HC030003A", varReplacementStrings)
  88.     
  89.     L_HOMEDIRECTORY_TEXT                = objLocMgr.GetString("usermsg.dll","&H40300052", varReplacementStrings)
  90.     L_HOMEDIRECTORY_ERRORMESSAGE        = objLocMgr.GetString("usermsg.dll","&HC0300053", varReplacementStrings)
  91.     L_CREATEHOMEDIRECTORY_ERRORMESSAGE  = objLocMgr.GetString("usermsg.dll","&HC0300057", varReplacementStrings)
  92.     L_CREATEHOMEDIRECTORY_EXISTMESSAGE  = objLocMgr.GetString("usermsg.dll","&HC0300059", varReplacementStrings)
  93.     
  94.     '------------------------------------------------------------------------
  95.     'END of localization content
  96.     '------------------------------------------------------------------------
  97.     
  98.     ' Create a Tabbed Property Page
  99.     Dim aUser(0)
  100.     Dim sUser
  101.     Call OTS_GetTableSelectionCount("")
  102.     Call OTS_GetTableSelection("", 1, sUser)
  103.     Call SA_TraceOut(SA_GetScriptFileName, "Selected user: " + sUser)
  104.     aUser(0) = sUser
  105.     
  106.     L_PAGETITLE_TEXT    = GetLocString("usermsg.dll","&H40300030", aUser)
  107.     rc = SA_CreatePage( L_PAGETITLE_TEXT, "", PT_TABBED, page )
  108.     
  109.     ' Add one tab
  110.     rc = SA_AddTabPage( page, L_GENERAL_TEXT, idTabGeneral)
  111.     
  112.     ' Show the page
  113.     rc = SA_ShowPage( page )
  114.     
  115.     '-------------------------------------------------------------------------
  116.     'Function:                OnInitPage()
  117.     'Description:            Called to signal first time processing for this page.
  118.     '                        Use this method to do first time initialization tasks
  119.     'Input Variables:        PageIn,EventArg
  120.     'Output Variables:        PageIn,EventArg
  121.     'Returns:                True/False
  122.     'Global Variables:        None
  123.     '-------------------------------------------------------------------------    
  124.     Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
  125.     
  126.         'globally required
  127.            GetComputerObject()   
  128.         
  129.         Dim iItemCount
  130.         Dim sessionItem
  131.         
  132.         '
  133.         ' Get table selection count
  134.         '
  135.         iItemCount = OTS_GetTableSelectionCount("")
  136.         
  137.         F_strCheckboxClass = "FormField"       
  138.         
  139.         If iItemCount > 1 Then
  140.         
  141.             '
  142.             ' It's multiselection, only disable attribute can be changed
  143.             '
  144.             Dim x
  145.             Dim itemKey
  146.             F_strIschecked = "unchecked"
  147.             
  148.             L_USERDISABLED_TEXT    = objLocMgr.GetString("usermsg.dll","&H40300056", varReplacementStrings)
  149.             
  150.             For x = 1 To iItemCount
  151.                 
  152.                 'Retrieve each user's property 
  153.                 If ( OTS_GetTableSelection("", x, itemKey) ) Then
  154.                 
  155.                     F_strUserName = replace(itemKey,"\'","'")
  156.                     
  157.                     'Get the user object
  158.                     Set F_objUser = F_objComputer.GetObject("User",F_strUserName)
  159.                     
  160.                     If Err.number <> 0 Then
  161.                         Err.Clear
  162.                         Call ServeFailurePage(L_ADSI_ERRORMESSAGE ,1)
  163.                         Exit Function
  164.                     End If
  165.                     
  166.                     If F_objUser.UserFlags And CONST_UF_ACCOUNTDISABLE Then
  167.                         'Making F_strIschecked=checked for gui display only
  168.                         F_strIschecked = "checked"
  169.                     Else
  170.                         F_strCheckboxClass = "FormFieldTriState"                                                            
  171.                     End If
  172.                     
  173.                     Set F_objUser = Nothing
  174.                     
  175.                     'Restore the session value ???
  176.                     'sessionItem = "Item" + CStr(x)
  177.                     'Session(sessionItem) = itemKey        
  178.                 End If
  179.                 
  180.             Next                                                                
  181.             
  182.             F_strUserName = ""
  183.             
  184.             If F_strIschecked <> "checked" Then
  185.                 F_strCheckboxClass = "FormField"
  186.             End If               
  187.             
  188.         Else
  189.         
  190.             L_USERDISABLED_TEXT    = objLocMgr.GetString("usermsg.dll","&H40300034", varReplacementStrings)
  191.             
  192.             '
  193.             ' It's single selection
  194.             '
  195.             If F_strUserName = "" Then
  196.             
  197.                 If ( OTS_GetTableSelection("", 1, itemKey) ) Then
  198.                     F_strUserName   =  replace(itemKey,"\'","'")
  199.                     
  200.                     ' making a copy for future reference
  201.                     F_strOldUserName= F_strUserName
  202.                 End If
  203.                 
  204.                 'Restore the session value ???
  205.                 'sessionItem = "Item" + CStr(1)
  206.                 'Session(sessionItem) = itemKey        
  207.                 
  208.             End If
  209.     
  210.             Set F_objUser = F_objComputer.GetObject("User",F_strOldUserName)
  211.             If Err.number <> 0 Then
  212.                 SetErrMsg L_USERNOTFOUND_ERRORMESSAGE
  213.                 Exit Function
  214.             End If
  215.             
  216.             F_strFullName           = F_objUser.FullName            'Get's the full  name
  217.             F_strDescription        = F_objUser.Description            'Gets the description
  218.             F_strHomeDirectory      = F_objUser.HomeDirectory       'Gets home directory
  219.             F_strOldHomeDirectory   = F_strHomeDirectory            'Store home directory
  220.             
  221.             ' checking for disable property
  222.             If F_objUser.UserFlags And CONST_UF_ACCOUNTDISABLE Then
  223.                 'Making F_strIschecked=checked for gui display only
  224.                 F_strIschecked = "checked"
  225.             Else
  226.                 'Making F_strIschecked=unchecked for gui display only
  227.                 F_strIschecked = "unchecked"
  228.             End If
  229.             
  230.                Set F_objUser = Nothing
  231.             
  232.         End If        
  233.         
  234.         Set F_objComputer    =Nothing
  235.         OnInitPage = TRUE
  236.     End Function
  237.     
  238.     '-------------------------------------------------------------------------
  239.     'Function:                OnPostBackPage()
  240.     'Description:            Called to signal that the page has been posted-back.
  241.     'Input Variables:        PageIn,EventArg
  242.     'Output Variables:        None
  243.     'Returns:                True/False
  244.     'Global Variables:        None
  245.     '-------------------------------------------------------------------------
  246.     Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg)
  247.         OnPostBackPage = TRUE
  248.     End Function
  249.     
  250.     '-------------------------------------------------------------------------
  251.     'Function:                OnServeTabbedPropertyPage()
  252.     'Description:            Called when the page needs to be served.Use this 
  253.     '                        method to serve content
  254.     'Input Variables:        PageIn,EventArg,iTab,bIsVisible
  255.     'Output Variables:        PageIn,EventArg
  256.     'Returns:                True/False
  257.     'Global Variables:        None
  258.     '            TRUE to indicate not problems occured. FALSE to indicate errors.
  259.     '            Returning FALSE will cause the page to be abandoned.
  260.     '-------------------------------------------------------------------------    
  261.     Public Function OnServeTabbedPropertyPage(ByRef PageIn, _
  262.                                                     ByVal iTab, _
  263.                                                     ByVal bIsVisible, ByRef EventArg)
  264.         Dim iItemCount
  265.         
  266.         iItemCount = OTS_GetTableSelectionCount("")
  267.         
  268.         If iItemCount > 1 Then
  269.             Dim x
  270.             Dim itemKey
  271.             Dim sessionItem
  272.         
  273.             'Here we have to restore the session again. ???    
  274.             For x = 1 To iItemCount
  275.                 If ( OTS_GetTableSelection("", x, itemKey) ) Then
  276.                     'sessionItem = "Item" + CStr(x)
  277.                     'Session(sessionItem) = itemKey        
  278.                 End If
  279.             Next                                                                
  280.             
  281.             ' Emit Web Framework required functions
  282.             Call ServeMultiSelectionJScript()
  283.             L_USERDISABLED_TEXT    = GetLocString("usermsg.dll","40300056", "")
  284.             
  285.             'Emit content for the requested tab
  286.             Call ServeTab1(PageIn, bIsVisible, TRUE )        
  287.         Else        
  288.             ' Emit Web Framework required functions
  289.             Call ServeCommonJavaScript()
  290.             L_USERDISABLED_TEXT    = GetLocString("usermsg.dll","40300034", "")
  291.  
  292.             ' Emit content for the requested tab
  293.             Call ServeTab1(PageIn, bIsVisible, FALSE )
  294.         End If
  295.             
  296.         OnServeTabbedPropertyPage = TRUE
  297.     End Function
  298.  
  299.     
  300.     '-------------------------------------------------------------------------
  301.     'Function:                OnSubmitPage()
  302.     'Description:            Called when the page has been submitted for processing.
  303.     '                        Use this method to process the submit request.
  304.     'Input Variables:        PageIn,EventArg
  305.     'Output Variables:        None
  306.     'Returns:                True/False
  307.     'Global Variables:        None
  308.     '-------------------------------------------------------------------------
  309.     Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
  310.         
  311.         F_strUserName         =Trim(Request.Form("txtUserName"))
  312.         F_strOldUserName     =Request.Form("hdnUsername")
  313.         F_strFullName         =Trim(Request.Form("txtfullName"))
  314.         F_strDescription     =Trim(Request.Form("txtDescription"))
  315.         F_strHomeDirectory   =Trim(Request.Form("txtHomeDirectory"))
  316.         F_strOldHomeDirectory=Request.Form("hdnHomeDirectory") 
  317.         F_blnIschecked         =Request.Form("chkuserDisabled")
  318.         
  319.         If F_blnIschecked=1 Then
  320.             F_strIschecked = "checked"
  321.         End if
  322.         
  323.         Dim iItemCount
  324.         iItemCount = OTS_GetTableSelectionCount("")
  325.         
  326.         If( iItemCount > 1 ) Then
  327.             OnSubmitPage = SetMultiSelectionProperty(iItemCount)
  328.         Else
  329.             OnSubmitPage = SetUserProperty() 
  330.         End If
  331.     End Function
  332.  
  333.  
  334.     '-------------------------------------------------------------------------
  335.     'Function:                OnClosePage()
  336.     'Description:            Called when the page is about closed.Use this method
  337.     '                        to perform clean-up processing
  338.     'Input Variables:        PageIn,EventArg
  339.     'Output Variables:        PageIn,EventArg
  340.     'Returns:                True/False
  341.     'Global Variables:        None
  342.     '-------------------------------------------------------------------------
  343.     Public Function OnClosePage(ByRef PageIn, ByRef EventArg)
  344.         OnClosePage = TRUE
  345.     End Function
  346.     
  347.     '-------------------------------------------------------------------------
  348.     'Function name:            GetUserInformation
  349.     'Description:            Get UserName from the system
  350.     'Input Variables:        None
  351.     'Output Variables:        None
  352.     'Returns:                None
  353.     'Global Variables:        None
  354.     '                        Out:F_objComputer         'User Name
  355.     '                        Out:F_objUsere           'Full Name
  356.     '                        In :L_ADSI_ERRORMESSAGE
  357.     '
  358.     ' If ADSI Error, calls ServeFailurePage with the error string
  359.     ' L_ADSI_ERRORMESSAGE.
  360.     '--------------------------------------------------------------------------
  361.     Function GetComputerObject
  362.         Err.Clear
  363.         on Error resume next
  364.         F_strComputerName=GetComputerName() 
  365.         Set F_objComputer     = GetObject("WinNT://" & F_strComputerName)
  366.     
  367.         If Err.number <> 0 Then
  368.             Err.Clear
  369.             Call ServeFailurePage(L_ADSI_ERRORMESSAGE ,1)
  370.             GetUserInformation=False
  371.             Exit Function
  372.         End If
  373.  
  374.     End function
  375.     
  376.     '-------------------------------------------------------------------------
  377.     'Function name:            SetUserProperty
  378.     'Description:            Setting the properties of the user
  379.     'Input Variables:        None
  380.     'Output Variables:        None
  381.     'Returns:                (True / Flase )
  382.     'Global Variables:        None
  383.     '                        In:F_strFullname               'Fullname
  384.     '                        In:F_strDescription               'Description
  385.     '                        In:F_blnIschecked               'Checked or not    
  386.     '                        In:F_strUserName                'Username
  387.     '                        In:F_strOldUserName               'Username to retain
  388.     '                        In:L_ADSI_ERRORMESSAGE
  389.     '                        In:L_NONUNIQUEUSERNAME_ERRORMESSAGE
  390.     '
  391.     ' True ->If Implemented properly
  392.     ' False->If Not Implemented
  393.     ' Username allready exists, calls SetErrMsg with the error string
  394.     ' L_NONUNIQUEUSERNAME_ERRORMESSAGE.
  395.     ' If ADSI Error, calls SetErrMsg with the error string
  396.     ' L_ADSI_ERRORMESSAGE.
  397.     ' Const:CONST_UF_ACCOUNTDISABLE   for setting disable property
  398.     ' If administrator disabled Error,calls SetErrMsg with the error string
  399.     ' L_ADMINDISABLED_ERRORMESSAGE
  400.     '--------------------------------------------------------------------------
  401.     Function SetUserProperty
  402.         Err.Clear
  403.         on Error resume next
  404.  
  405.         Dim objDummy      'Dummy object
  406.         Dim objFileSystem
  407.         Dim bReturn
  408.  
  409.         'Function call to connectto user
  410.         GetComputerObject()
  411.         Set F_objUser         = F_objComputer.GetObject("User",F_strOldUserName)
  412.         If Err.number <> 0 Then
  413.             Err.Clear
  414.             Call ServeFailurePage(L_ADSI_ERRORMESSAGE ,1)
  415.             Exit Function
  416.         End If
  417.  
  418.         Set objFileSystem=createobject("scripting.FileSystemObject")
  419.         If Err.number <> 0 Then
  420.             SetErrMsg L_CREATEHOMEDIRECTORY_ERRORMESSAGE
  421.             Exit Function
  422.         End If
  423.  
  424.         'Create home directory by settings.
  425.         If ((F_strHomeDirectory <> F_strOldHomeDirectory) AND (F_strHomeDirectory <> "")) Then
  426.             bReturn = CreateHomeDirectory( F_strHomeDirectory, objFileSystem )
  427.             If( bReturn = CONST_CREATDIRECTORY_ERROR ) Then
  428.                 SetErrMsg L_CREATEHOMEDIRECTORY_ERRORMESSAGE
  429.                 Exit Function
  430.             ElseIf( bReturn = CONST_CREATDIRECTORY_EXIST ) Then
  431.                 SetErrMsg L_CREATEHOMEDIRECTORY_EXISTMESSAGE
  432.                 Exit Function
  433.             End If
  434.         End If
  435.         
  436.         'Setting the user info 
  437.         objDummy =F_objUser.Put("FullName",F_strFullName)
  438.         objDummy =F_objUser.Put("Description",F_strDescription)
  439.         objDummy =F_objUser.Put("HomeDirectory",F_strHomeDirectory)
  440.  
  441.         'Setting the disable property
  442.         SetDisableProperty()
  443.         
  444.         F_objUser.SetInfo()
  445.  
  446.         'This is to change the Group name
  447.         If ( F_strUserName <> F_strOldUserName ) Then
  448.             F_objComputer.MoveHere F_objUser.AdsPath ,F_strUserName
  449.         End If           
  450.  
  451.         'Set to Nothing
  452.         Set F_objComputer    =Nothing
  453.         Set F_objUser        =Nothing
  454.         Set objFileSystem   =Nothing
  455.         
  456.         'Error Occurs,this Error validation takecare     
  457.         If Err.number <> 0 Then
  458.             If Err.number = CONST_NONUNIQUEUSERNAME_ERRNO Then
  459.                 SetErrMsg  L_UNIQUEUSERNAME_ERRORMESSAGE
  460.             Elseif Err.Number = CONST_GROUP_EXISTS_ERRNO Then  
  461.                 SetErrMsg L_GROUP_EXISTS_ERRORMESSAGE
  462.             Elseif Err.Number = CONST_ADMINDISABLED_ERRNO then
  463.                 SetErrMsg  L_ADMINDISABLED_ERRORMESSAGE
  464.             Else            
  465.                 SetErrMsg  L_ADSI_ERRORMESSAGE
  466.             End If
  467.             'This is to take care of old value to be replaced with new value in case of failure
  468.             F_strUserName=F_strOldUserName
  469.             SetUserProperty=False
  470.             Exit Function
  471.         End If
  472.  
  473.         If ((F_strHomeDirectory <> F_strOldHomeDirectory) AND (F_strHomeDirectory <> "")) Then
  474.             Call SetHomeDirectoryPermission( F_strComputerName, F_strUsername, F_strHomeDirectory )
  475.         End If    
  476.                     
  477.         SetUserProperty=True
  478.     End Function
  479.  
  480.     '--------------------------------------------------------------------------    
  481.     'Function name:            GetDefaultHomeDirectory
  482.     'Description:            Get default homedirectory of the user
  483.     'Input Variables:        None
  484.     'Output Variables:        None
  485.     'Returns:                Default homedirectory of the user
  486.     'Global Variables:        
  487.     '                       In:F_strUserName              'current user name
  488.     '--------------------------------------------------------------------------
  489.     Function GetDefaultHomeDirectory()
  490.     
  491.         Dim objReg
  492.         Dim strDefaultHomeDir
  493.         
  494.         Set objReg = RegConnection()
  495.         
  496.         strDefaultHomeDir = GetRegKeyValue( objReg,_
  497.                                      CONST_USERGROUP_KEYNAME,_
  498.                                      CONST_USERDIR_VALUENAME,_
  499.                                      CONST_STRING )
  500.                              
  501.         If ( Len(strDefaultHomeDir) <= 0 ) Then
  502.             strDefaultHomeDir = CONST_DEFAULTHOMEDIR
  503.         End If 
  504.  
  505.         GetDefaultHomeDirectory = strDefaultHomeDir + F_strUserName
  506.                     
  507.         Set objReg = nothing
  508.         
  509.     End Function
  510.  
  511.     '--------------------------------------------------------------------------    
  512.     'Function name:            SetDisableProperty
  513.     'Description:            Change the disable flage of the user
  514.     'Input Variables:        None
  515.     'Output Variables:        None
  516.     'Returns:                None
  517.     'Global Variables:        
  518.     '                       In:F_objUser                   'Object of user
  519.     '                        In:F_blnIschecked               'Checked or not    
  520.     '--------------------------------------------------------------------------
  521.     Function SetDisableProperty()
  522.     
  523.         Dim flagUserFlags 'Flage variable
  524.         
  525.         If F_blnIschecked=1 Then
  526.             flagUserFlags = F_objUser.UserFlags OR CONST_UF_ACCOUNTDISABLE
  527.         Else
  528.             if ((F_objUser.UserFlags) = (F_objUser.UserFlags OR CONST_UF_ACCOUNTDISABLE)) Then
  529.                 flagUserFlags = F_objUser.UserFlags XOR CONST_UF_ACCOUNTDISABLE
  530.             Else
  531.                 flagUserFlags = F_objUser.UserFlags
  532.             End If
  533.         End If
  534.         F_objUser.Put "UserFlags", flagUserFlags
  535.         
  536.     End Function
  537.  
  538.     '-------------------------------------------------------------------------
  539.     'Function name:            SetMultiSelectionProperty
  540.     'Description:            Setting the properties of the selected users
  541.     'Input Variables:        iItemCount
  542.     'Output Variables:        None
  543.     'Returns:                (True / Flase )
  544.     'Global Variables:        None
  545.     '                        In:F_blnIschecked               'Checked or not    
  546.     '                        In:L_ADSI_ERRORMESSAGE
  547.     '                        In:L_NONUNIQUEUSERNAME_ERRORMESSAGE
  548.     '
  549.     ' True ->If Implemented properly
  550.     ' False->If Not Implemented
  551.     ' Username allready exists, calls SetErrMsg with the error string
  552.     ' L_NONUNIQUEUSERNAME_ERRORMESSAGE.
  553.     ' If ADSI Error, calls SetErrMsg with the error string
  554.     ' L_ADSI_ERRORMESSAGE.
  555.     ' Const:CONST_UF_ACCOUNTDISABLE   for setting disable property
  556.     ' If administrator disabled Error,calls SetErrMsg with the error string
  557.     ' L_ADMINDISABLED_ERRORMESSAGE
  558.     '--------------------------------------------------------------------------
  559.     Function SetMultiSelectionProperty(ByVal iItemCount)
  560.         Err.Clear
  561.         on Error resume next
  562.     
  563.         Dim x
  564.         Dim itemKey
  565.         Dim sessionItem
  566.  
  567.         SetMultiSelectionProperty = false
  568.             
  569.         GetComputerObject()
  570.         
  571.         For x = 1 To iItemCount
  572.         
  573.             If ( OTS_GetTableSelection("", x, itemKey) ) Then
  574.             
  575.                 F_strUserName = replace(itemKey,"\'","'")
  576.                 Set F_objUser = F_objComputer.GetObject("User",F_strUserName)
  577.                 
  578.                 If Err.number <> 0 Then
  579.                     Err.Clear
  580.                     Call ServeFailurePage(L_ADSI_ERRORMESSAGE ,1)
  581.                     Exit Function
  582.                 End If
  583.                 
  584.                 SetDisableProperty()
  585.                 F_objUser.SetInfo()
  586.                 
  587.                 Set F_objUser = Nothing
  588.                 
  589.                 'sessionItem = "Item" + CStr(x)
  590.                 'Session(sessionItem) = itemKey
  591.                         
  592.                 If Err.number <> 0 Then
  593.                     If Err.Number = CONST_ADMINDISABLED_ERRNO then
  594.                         SetErrMsg  L_ADMINDISABLED_ERRORMESSAGE & " " &  "(" & F_strUserName & ")" 
  595.                     Else            
  596.                         SetErrMsg  L_ADSI_ERRORMESSAGE& " " &  "(" & F_strUserName & ")" 
  597.                     End If
  598.                     
  599.                     Set F_objComputer    =Nothing
  600.                     Exit Function
  601.                 End If
  602.                 
  603.             End If
  604.         Next                                                                
  605.         
  606.         Set F_objComputer    =Nothing
  607.         
  608.         SetMultiSelectionProperty = true
  609.     End Function
  610.     
  611.     '-------------------------------------------------------------------------
  612.     'Function:                ServeTab1
  613.     'Description:            Serves in getting the page for tab1
  614.     'Input Variables:        PageIn,bIsVisible
  615.     'Output Variables:        PageIn
  616.     'Returns:                gc_ERR_SUCCESS
  617.     'Global Variables:        L_(*)All
  618.     '                        F_(*) All            
  619.     '-------------------------------------------------------------------------
  620.     Function ServeTab1(ByRef PageIn, ByVal bIsVisible, ByVal bIsMultiSelection )
  621.         Dim strTableClass
  622.         Dim strIfDisabled
  623.         Dim strFormClass
  624.         
  625.         If ( bIsMultiSelection ) Then
  626.             strTableClass = "TasksBodyDisabled"                    
  627.             strIfDisabled = "disabled"
  628.             strFormClass  = "FormFieldDisabled"
  629.         Else
  630.             strTableClass = "TasksBody"                    
  631.             strIfDisabled = ""
  632.             strFormClass  = "FormField"
  633.         End If
  634.             
  635.         If ( bIsVisible ) Then%>
  636.  
  637.             <TABLE WIDTH=518 VALIGN=middle ALIGN=left BORDER=0 CELLSPACING=0
  638.                    CELLPADDING=2 class="<%=Server.HTMLEncode(strTableClass)%>">
  639.                 <tr>
  640.                     <td width=25% NOWRAP>
  641.                         <%=L_USERNAME_TEXT %>
  642.                     </td>
  643.                     <td NOWRAP>
  644.                         <input NAME="txtUserName" TYPE="text" SIZE="20"  VALUE="<%=Server.HTMLEncode(F_strUserName)%>" 
  645.                             <%=Server.HTMLEncode(strIfDisabled)%> class="<%=Server.HTMLEncode(strFormClass)%>"
  646.                             maxlength=20  OnKeyUp="JavaScript:makeDisable(txtUserName)">
  647.                         <input NAME="hdnUsername" TYPE="hidden" VALUE="<%=Server.HTMLEncode(F_strOldUserName)%>" >
  648.                     </td>
  649.                 </tr>
  650.                 <tr>
  651.                     <td width=25% NOWRAP>
  652.                         <%=L_FULLNAME_TEXT %>
  653.                     </td>
  654.                     <td NOWRAP>
  655.                         <input NAME="txtfullName" TYPE="text" SIZE="20" <%=Server.HTMLEncode(strIfDisabled)%> 
  656.                             class="<%=Server.HTMLEncode(strFormClass)%>" VALUE="<%=Server.HTMLEncode(F_strFullName)%>">
  657.                     </td>
  658.                 </tr>
  659.                 <tr>
  660.                     <td width=25% NOWRAP>
  661.                         <%=L_DESCRIPTION_TEXT %>
  662.                     </td>
  663.                     <td>
  664.                         <input NAME="txtDescription" TYPE="text" SIZE="40" <%=Server.HTMLEncode(strIfDisabled)%>
  665.                             class="<%=Server.HTMLEncode(strFormClass)%>" VALUE="<%=Server.HTMLEncode(F_strDescription)%>" maxlength=300>
  666.                     </td>
  667.                 </tr>
  668.                 <tr>
  669.                     <td width=25% NOWRAP>
  670.                         <%=L_HOMEDIRECTORY_TEXT %>
  671.                     </td>
  672.                     <td>
  673.                         <input NAME="txtHomeDirectory" TYPE="text" SIZE="40" <%=Server.HTMLEncode(strIfDisabled)%> 
  674.                             class="<%=Server.HTMLEncode(strFormClass)%>" VALUE="<%=Server.HTMLEncode(F_strHomeDirectory)%>" maxlength=300>
  675.                         <input NAME="hdnHomeDirectory" TYPE="hidden" VALUE="<%=Server.HTMLEncode(F_strOldHomeDirectory)%>" >    
  676.                     </td>
  677.                 </tr>
  678.                 <tr>
  679.                     <td width=25% NOWRAP>
  680.                     </td>
  681.                     <td class="TasksBody">
  682.                         <input NAME="chkuserDisabled" class="<%=Server.HTMLEncode(F_strCheckboxClass)%>" 
  683.                             TYPE="checkbox" <%=Server.HTMLEncode(F_strIschecked)%> value="1" onclick="checkboxClick()">
  684.                         <%=L_USERDISABLED_TEXT    %>
  685.                     </td>
  686.                 </tr>
  687.             </TABLE>
  688.         <%    
  689.          End If
  690.         ServeTab1 = gc_ERR_SUCCESS
  691.     End Function
  692.  
  693.     '-------------------------------------------------------------------------
  694.     'Function:                ServeMultiSelectionJScript
  695.     'Description:            Serves in getting the page for tab1 in multiselect
  696.     'Input Variables:        None
  697.     'Output Variables:        None
  698.     'Returns:                None
  699.     'Global Variables:        L_(*)All
  700.     '                        F_(*) All            
  701.     '-------------------------------------------------------------------------
  702.     Function ServeMultiSelectionJScript()
  703.     %>
  704.         <script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js">
  705.         </script>
  706.         <script language="JavaScript">
  707.         
  708.         function Init()
  709.         {
  710.             document.frmTask.chkuserDisabled.focus();
  711.             document.frmTask.onkeypress = ClearErr
  712.             EnableCancel();
  713.             EnableOK();
  714.         }
  715.  
  716.         function ValidatePage()
  717.         {
  718.             return true;
  719.         }
  720.     
  721.         function SetData()
  722.         {
  723.         }
  724.         
  725.         // function to make the Ok button disable
  726.         function makeDisable(objUsername)
  727.         {
  728.         }
  729.         
  730.         function checkboxClick()
  731.         {
  732.            document.frmTask.chkuserDisabled.className = "FormField";          
  733.         }
  734.         </script>
  735.     <%    
  736.     End Function
  737.  
  738.     '-------------------------------------------------------------------------
  739.     'Function:                ServeCommonJavaScript
  740.     'Description:            Serves in initialiging the values,setting the form
  741.     '                        data and validating the form values
  742.     'Input Variables:        None
  743.     'Output Variables:        None
  744.     'Returns:                None
  745.     'Global Variables:        L_PASSWORDNOTMATCH_ERRORMESSAGE
  746.     '-------------------------------------------------------------------------
  747.     Function ServeCommonJavaScript()
  748.     %>
  749.         <script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js">
  750.         </script>
  751.         <script language="JavaScript">
  752.         // Init Function
  753.         function Init()
  754.         {
  755.             document.frmTask.txtUserName.focus();
  756.             document.frmTask.onkeypress = ClearErr
  757.             EnableCancel();
  758.         }
  759.  
  760.         // ValidatePage Function
  761.         // Returns: True if the page is OK, false if error(s) exist. 
  762.         function ValidatePage()
  763.         {
  764.             var objUsername=document.frmTask.txtUserName;
  765.             var strUsername=objUsername.value;
  766.             //Blank Usename Validation
  767.             if (Trim(strUsername)=="")
  768.             {
  769.                 SA_DisplayErr("<%=Server.HTMLEncode(L_ENTERNAME_ERRORMESSAGE) %>");
  770.                 document.frmTask.onkeypress = ClearErr
  771.                 return false;
  772.             }
  773.                         
  774.             // Checks For Invalid Key Entry
  775.             if(!isvalidchar("/[\/\*\?\"<>\|+=,;:\[\\]\\\\\]/",strUsername))
  776.             {
  777.                 SA_DisplayErr("<% =Server.HTMLEncode(L_INVALIDCHARACTER_ERRORMESSAGE) %>");
  778.                 document.frmTask.txtUserName.focus()
  779.                 document.frmTask.onkeypress = ClearErr
  780.                 return false;
  781.             }
  782.             
  783.             var objHomeDirectory = document.frmTask.txtHomeDirectory;
  784.             var strHomeDirectory = Trim(objHomeDirectory.value);
  785.             var bStringValid = false;
  786.             
  787.             //Blank HomeDirectory
  788.             if( strHomeDirectory == "" )
  789.             {
  790.                 return true;
  791.             }
  792.             
  793.             do{
  794.                 
  795.                 
  796.                 if( !strHomeDirectory.match( /^[A-Za-z]:\\/ ) )
  797.                     break;
  798.                                                            
  799.                 if( strHomeDirectory.match( /\\{2,}/ ) )
  800.                     break;
  801.                     
  802.                 if( (strHomeDirectory.substr(2)).match( /[\/\*\?\|,;:"<>]/ ) )
  803.                     break;
  804.                     
  805.                 bStringValid = true;                                       
  806.                 
  807.             }while(false);
  808.             
  809.             if( !bStringValid )
  810.             {                                   
  811.                 SA_DisplayErr("<%=Server.HTMLEncode(L_HOMEDIRECTORY_ERRORMESSAGE) %>");
  812.                 objHomeDirectory.focus();
  813.                 document.frmTask.onkeypress = ClearErr;
  814.                 return false;
  815.             }
  816.  
  817.             return true;
  818.         }
  819.         
  820.         // function to make the Ok button disable
  821.         function makeDisable(objUsername)
  822.         {
  823.             var strUsername=objUsername.value;
  824.             if (Trim(strUsername)=="" )
  825.                 DisableOK();
  826.             else
  827.                 EnableOK();
  828.         }
  829.         
  830.         // SetData Function
  831.         function SetData()
  832.         {
  833.         }
  834.         
  835.         function checkboxClick()
  836.         {
  837.         }
  838.         
  839.         </script>
  840.     <%
  841.     End Function
  842. %>
  843.